import base from './base'; // 导入接口域名列表
import axios from '@/utils/http'; // 导入http中创建的axios实例
import qs from 'qs'; // 根据需求是否导入qs模块
import basicAuth from './basic-auth';

const api = {

	/**
	 * 1.检测流量文件是否包含恶意流量
	 * @param {String} p  
	 * @returns 
	 */
	postIfMaliciousTraffic(p) {
		return axios.post(`${base.sq}/1`, p)
	},
	/**
  * 2.流量检测服务：获取所有历史僵尸网络流量检测记录
 
  * @returns 
  */
	getAllHistory() {
		return axios.get(`${base.sq}/1/history`)
	},
	/**
	 * 3.流量检测服务：查询的具体历史检测文件记录
	 * @param {string} p  
	 * @returns 
	 */
	postHistoryByFile(p) {
		return axios.get(`${base.sq}/2/detail/${p}`)
	},
	/**
	 * 4.谱系分析：返回工具集列表
	 */
	getTools() {
		return axios.get(`${base.sq}/2/tools`)

	},
	/**
	 * 5.谱系分析：下载规则库文件
	 * blob 
	 */
	downRuleFile() {
		return axios.get(`${base.sq}/2/down_rule/`, {
			responseType: "blob",
		})

	},
	/**
	 * 5.谱系分析：下载规则库文件
	 * a href
	 */
	downRuleFile2() {
		return `${base.sq}/2/down_rule/`

	},
	/**
	 * 6.谱系分析：返回历史记录
	 *返回结果为list，其中元素为字典（key-value），每个字典中key有num（分析记录的编号），time（分析的时间），type（分析的类型）,name（分析的文件或文件夹名称）
	 * @returns 
	 */
	getHistory() {
		return axios.get(`${base.sq}/2/history`)
	},

	getHistoryPage(p) {
		return axios.get(`${base.sq}/2/history_index`, {
			params: {
				...p
			}
		})
	},
	/**
	 * 7.根据num值返回对应的历史分析结果
	 * @param {number} p 
	 * @returns 
	 */
	getHistoryByNum(p) {
		return axios.get(`${base.sq}/2/history/${p}`);
	},
	/**
	 * 8.谱系分析：返回转换为图片的流量列表
	 */
	getPngs() {
		return axios.get(`${base.sq}/2/pngs`)

	},
	/**
	 * 9.谱系分析：下载对应图片
	 * @param {String} p 
	 * @returns 
	 */
	getPng(p) {
		return axios.get(`${base.sq}/2/pngs/${p}`)

	},
	/**
	 * 10.谱系分析：主要的分析接口
	 * @param {FormData} p 
	 * @returns 
	 */
	postAnalysis(p) {
		return axios.post(`${base.sq}/2`, p, {
			headers: {
				'Content-Type': 'multipart/form-data',
			}
		})
	},
	/**
	 * 11.线索查询搜索服务：关联信息情报查询相关
	 * @param {JSON} p 
	 * @returns 
	 */
	postSearch(p) {
		return axios.get(`${base.sq}/3/api`, {
			params: {
				...p
			}
		})

	},
	postSearchNext(p) {
		console.log(p)
		return axios.post(`${base.sq}/3/api2`, p, {
			headers: {
				'Content-Type': 'multipart/form-data'
			}
		})

	},
	/**
	 * 单线索查询（有等待）
	 * @param {*} p 
	 * @returns 
	 */
	postSearchNext2(p) {
		return axios.get(`${base.sq}/3/api3`, {
			params: {
				...p
			}
		})

	},
	/**
	 * 威胁情报 历史记录
	 * @returns 
	 */
	getClueHistory() {
		return axios.get(`${base.sq}/3/history`)
	},

	getClueHistoryPage(p) {
		return axios.get(`${base.sq}/3/history_index`, {
			params: {
				...p
			}
		})
	},

	getClueDetail(id) {
		return axios.get(`${base.sq}/3/detail/${id}`)
	},

	/**
	 * 文件分析
	 * @returns 
	 */
	getByUrl(url) {
		if (process.env.NODE_ENV === 'development') {
			return url
		} else if (process.env.NODE_ENV === 'production') {
			return base.byUrl + url
		}
	},
	
	getProject() {
		return axios.get(`/api/v3/project/`, {
			headers: {
				'Content-Type': 'multipart/form-data',
				'Authorization': basicAuth()
			}
		})
	},

	getFileHistoryPage(p, p1) {
		return axios.get(`/api/v3/project/${p.type}/malware/`, {
			params: {
				...p1
			},
			headers: {
				'Authorization': basicAuth()
			}
		})
	},
	getFileHistoryPageSearch(p, p1) {
		return axios.get(`/api/v3/project/${p.type}/malware/search/`, {
			params: {
				...p1
			},
			headers: {
				'Authorization': basicAuth()
			}
		})
	},
	getBastInfo(p) {
		return axios.get(`/api/v3/project/${p.type}/malware/${p.value}/`, {
			headers: {
				'Authorization': basicAuth()
			}
		})
	},
	getFileTag(p) {
		return axios.get(`/api/v3/project/${p.type}/malware/${p.value}/tag/`, {
			headers: {
				'Authorization': basicAuth()
			}
		})
	},
	getFileStrings(p) {
		return axios.get(`/api/v3/project/${p.type}/malware/${p.value}/strings/?format=json`, {
			headers: {
				'Authorization': basicAuth()
			}
		})
	},
	getFileFamily(p) {
		return axios.get(`/api/v3/project/${p.type}/malware/${p.value}/family/?format=json`, {
			headers: {
				'Authorization': basicAuth()
			}
		})
	},
	getFileUpload(p, p1) {
		return axios.post(`/api/v3/project/${p.type}/malware/upload/`, p1, {
			headers: {
				'Content-Type': 'multipart/form-data',
				'Authorization': basicAuth()
			}
		})
	},

};
export default api;
